Draft: Try to use object constructors for complex property values where possible #162
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Something I ran into while trying to convert a project to use this was that complex valued types would often be given long JSON values as their defaults, when what I really expected was simply
new Foo()
. Additionally some complex objects, such as those with fields only in the parent's parent class, would generate invalid JSON.This is a test of a new way to try to detect if a complex property's default value is equivalent to the value returned by its default constructor. If so, it will simply use
new TheType()
in the output typescript.This is a draft as I'm not sure if you even want this feature, plus I'm sure it's missing some edge cases, such as what happens when the property type is not an exported class. Let me know your thoughts!